function fn(n){
  console.log(`val 值改为:${n}`);
}

var obj ={num:1}


 //数据劫持方法
 let val=0
//  对象有这个属性劫持，没有先添加在劫持
Object.defineProperty(obj,'num',{
  // value:2,  //
  // writable:true,  //true可读写 false为只读
  enumerable:true,//是否可以枚举 
  // configurable:true, //是否可配置 true为可操作 false为不可操作
  get(){
    return val
  },
  set(newVal){
    val=newVal  //赋值
  }
})

// delete obj.count //删除obj里的count 当configurable:false不可删除
// for(let key in obj)
// {
//   console.log(key);  //当enumerable:false 这个属性不可以枚举
// }
// obj.count=3

obj.num=10
console.log(obj.num);